Analiza ofert dotyczących wynajmu nieruchomości z portalu gumtree.pl

Krzysztof Słomczyński

26 listopada 2016

Dlaczego taki temat?

  • Praktyczny wymiar projektu
  • CzasDojazdu
  • Błędnie zapisywane dane (metraż), niektóre pomijane (palenie, zwierzęta, płeć)
  • Udoskonalenie scrapera
  • Zbudowanie modelu przewidującego ceny wynajmowanych pokojów

Udoskonalenie scrapera - zdobycie danych

  • Wykoszystanie pakietu rvest oraz wtyczki SelectorGadget
  • Baza danych SQLite a pliki *.csv
  • Liczba ofert w czasie trwania projektu nie będzie duża

Przygotowanie do projektu

Ukończenie kursów:

  • Machine Learning at Coursera by Andrew Ng
  • Statistical Learning at Stanford ONLINE by Trevor Hastie and Robert Tibshirani

Zapoznanie się z narzędziami:

  • Hadoop HDFS
  • Spark (pakiet sparklyr)
  • Pakiety do różnego rodzaju regresji (boot, leaps, glmnet)
  • Pakiety do tworzenia prezentacji revealjs

Struktura danych dotyczących pokojów na portalu

Powtarzalne opcje wyboru:

  1. Lokalizacja
    • Miasto, Województwo
  2. Dostępny
    • Data w formacie %d/%m/%Y
  3. Wielkość (m2)
    • Liczba typu Integer
  4. Współdzielenie
    • Współdzielenie pokoju
    • Współdzielenie mieszkania/domu
  5. Do wynajęcia przez
    • “———”
    • Właściciel
    • Agencja
  6. Palący
    • “———”"
    • Tak
    • Nie
  7. Przyjazne zwierzakom
    • “———”"
    • Tak
    • Nie
  8. Cena
    • Liczba typu Integer
    • Proszę o kontakt
    • Wymiana/zamiana
  9. Rodzaj nieruchomości
    • “———”
    • Mieszkanie
    • Dom
    • Inne
  10. Preferowana płeć
    • “———”
    • Mężczyzna
    • Kobieta
    • Bez preferencji
  11. Liczba pokoi
    • “———”
    • Kawalerka lub garsoneria
    • 2 pokoje
    • 3 pokoje
    • 4 pokoje
    • 5 pokoi
    • 6 lub więcej pokoi

Przegląd danych

              lokalizacja       opis                cena         do_wynajecia_przez                        wspoldzielenie    wielkosc      
 Kraków, Małopolskie:1847   Length:3564        Min.   :   1.0   Agencja   : 188     Nie podano                    : 207   Min.   :   1.00  
 Śródmieście        : 286   Class :character   1st Qu.: 550.0   Nie podano: 186     Współdzielenie mieszkania/domu:2794   1st Qu.:  15.00  
 Mokotów            : 246   Mode  :character   Median : 700.0   Właściciel:3190     Współdzielenie pokoju         : 563   Median :  37.50  
 Targówek           : 156                      Mean   : 739.4                                                             Mean   :  44.52  
 Praga Południe     : 153                      3rd Qu.: 900.0                                                             3rd Qu.:  60.00  
 Bielany            : 148                      Max.   :8000.0                                                             Max.   :1200.00  
 (Other)            : 728                                                                                                                  
                   liczba_pokoi  rodzaj_nieruchomosci        preferowana_plec palacy     przyjazne_zwierzakom liczba_wyrazow 
 2 pokoje                : 929   Dom       : 482      Bez preferencji:2319    Nie:1907   Nie:1709             Min.   :  2.0  
 3 pokoje                :1303   Inne      : 216      Kobieta        : 905    Tak:1657   Tak:1855             1st Qu.: 45.0  
 4 pokoje                : 384   Mieszkanie:2866      Mężczyzna      : 340                                    Median : 83.0  
 5 pokoi                 : 141                                                                                Mean   :106.1  
 6 lub więcej pokoi      : 198                                                                                3rd Qu.:140.0  
 Kawalerka lub garsoniera: 123                                                                                Max.   :558.0  
 Nie podano              : 486                                                                                               

Cena a wielkość

Cena a wielkość - regresja

Cena a wielkość - problemy

  • Nieintuicyjnie cena pokojów do wynajęcia spada wraz ze wzrostem metrażu
  • Niekonsekwencja we wprowadzaniu danych przez oferantów
  • Raz podany metraż całego mieszkania z ceną za pokój
  • Innym razem podany metraż pokoju z ceną za wszystkie pokoje

Cena a wielkość - wnioski

  • Wyrafinowana analiza treści opisu
  • Propozycja dokładnego opisu atrybutów w formularzu na gumtree.pl

Mieszkania i domy

  • Ponad 30 tysięcy ofert w danej chwili
  • Dla Warszawy 13 tysięcy
  • Wcześniej - parking oraz liczba_lazienek
  • Teraz - wspoldzielenie oraz preferowana_plec

Przegląd danych

         lokalizacja       opis                cena          do_wynajecia_przez                   liczba_pokoi  rodzaj_nieruchomosci
 Mokotów       :3680   Length:13390       Min.   :     20   Agencja   :11303    2 pokoje                :6745   Dom       : 1086    
 Śródmieście   :3129   Class :character   1st Qu.:   2400   Nie podano:   83    3 pokoje                :3345   Inne      :   97    
 Wola          :1138   Mode  :character   Median :   3000   Właściciel: 2004    4 pokoje                :1040   Mieszkanie:12207    
 Praga Południe: 908                      Mean   :   4685                       5 pokoi                 : 467                       
 Wilanów       : 883                      3rd Qu.:   4500                       6 lub więcej pokoi      : 798                       
 Ursynów       : 688                      Max.   :2133000                       Kawalerka lub garsoniera: 927                       
 (Other)       :2964                                                            Nie podano              :  68                       
    wielkosc             parking                  liczba_lazienek palacy      przyjazne_zwierzakom liczba_wyrazow 
 Min.   :   1.00   Brak      : 107   1 łazienka           :6289   Nie: 1287   Nie: 1334            Min.   :  2.0  
 1st Qu.:  46.00   Garaż     :3430   2 łazienki           : 988   Tak:12103   Tak:12056            1st Qu.: 89.0  
 Median :  58.00   Kryty     :1365   3 łazienki           : 143                                    Median :133.0  
 Mean   :  87.65   Nie podano:6634   4 lub więcej łazienek:  57                                    Mean   :140.5  
 3rd Qu.:  88.00   Ulica     :1854   Nie podano           :5913                                    3rd Qu.:171.0  
 Max.   :6000.00                                                                                   Max.   :611.0  
                                                                                                                  

Cena a wielkość

Cena a wielkość - regresja


Call:
lm(formula = cena ~ wielkosc, data = dane)

Residuals:
     Min       1Q   Median       3Q      Max 
-2751.84  -397.47   -71.16   353.40  2337.61 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 943.1021    21.2184   44.45   <2e-16 ***
wielkosc     35.0874     0.3761   93.28   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 595.1 on 10003 degrees of freedom
Multiple R-squared:  0.4652,    Adjusted R-squared:  0.4652 
F-statistic:  8702 on 1 and 10003 DF,  p-value: < 2.2e-16

Cena a wielkość - regresja

Udział pozostałych predyktorów


Call:
lm(formula = cena ~ ., data = dane)

Residuals:
     Min       1Q   Median       3Q      Max 
-2396.82  -306.71   -41.21   265.44  2360.59 

Coefficients:
                                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)                           704.07025  100.83986   6.982 3.09e-12 ***
lokalizacjaBiałołęka                 -237.87954   49.06485  -4.848 1.26e-06 ***
lokalizacjaBielany                    193.75822   33.80390   5.732 1.02e-08 ***
lokalizacjaMokotów                    626.75092   26.80746  23.380  < 2e-16 ***
lokalizacjaOchota                     515.49644   32.69096  15.769  < 2e-16 ***
lokalizacjaPraga Północ               421.57712   48.98762   8.606  < 2e-16 ***
lokalizacjaPraga Południe             244.85947   30.79142   7.952 2.03e-15 ***
lokalizacjaRembertów                 -103.54603  175.54770  -0.590 0.555308    
lokalizacjaŚródmieście                808.88225   27.17290  29.768  < 2e-16 ***
lokalizacjaTargówek                   -71.46235   51.15987  -1.397 0.162492    
lokalizacjaUrsus                     -127.28971   70.98582  -1.793 0.072976 .  
lokalizacjaUrsynów                    212.77260   32.69910   6.507 8.04e-11 ***
lokalizacjaWawer                     -259.87870   68.24197  -3.808 0.000141 ***
lokalizacjaWesoła                    -749.57663  175.97769  -4.259 2.07e-05 ***
lokalizacjaWilanów                    463.15588   34.79566  13.311  < 2e-16 ***
lokalizacjaWłochy                     192.77545   59.20619   3.256 0.001134 ** 
lokalizacjaWola                       564.26670   29.31494  19.248  < 2e-16 ***
lokalizacjaŻoliborz                   529.07429   36.26477  14.589  < 2e-16 ***
do_wynajecia_przezNie podano          -39.40269   59.75994  -0.659 0.509687    
do_wynajecia_przezWłaściciel         -193.03556   15.51514 -12.442  < 2e-16 ***
liczba_pokoi3 pokoje                  189.35420   15.84874  11.948  < 2e-16 ***
liczba_pokoi4 pokoje                  243.86488   37.67650   6.473 1.01e-10 ***
liczba_pokoi5 pokoi                   192.41558  220.86949   0.871 0.383681    
liczba_pokoi6 lub więcej pokoi         75.86677  493.20126   0.154 0.877751    
liczba_pokoiKawalerka lub garsoniera -185.85131   19.56732  -9.498  < 2e-16 ***
liczba_pokoiNie podano                  7.33078   99.39017   0.074 0.941205    
rodzaj_nieruchomosciInne             -307.34257   94.54000  -3.251 0.001154 ** 
rodzaj_nieruchomosciMieszkanie       -130.39173   76.08872  -1.714 0.086619 .  
wielkosc                               27.49387    0.49561  55.475  < 2e-16 ***
parkingGaraż                          250.91295   52.43018   4.786 1.73e-06 ***
parkingKryty                           49.78108   55.62628   0.895 0.370851    
parkingNie podano                     -22.05660   51.94819  -0.425 0.671146    
parkingUlica                          -68.65787   52.56456  -1.306 0.191527    
liczba_lazienek2 łazienki              54.60075   25.91378   2.107 0.035141 *  
liczba_lazienek3 łazienki            -416.93398  491.30932  -0.849 0.396114    
liczba_lazienek4 lub więcej łazienek -599.71339  491.39611  -1.220 0.222332    
liczba_lazienekNie podano             208.91558   12.23168  17.080  < 2e-16 ***
palacyTak                              18.58975   20.93136   0.888 0.374493    
przyjazne_zwierzakomTak                -6.66947   18.91470  -0.353 0.724390    
liczba_wyrazow                          1.00732    0.07335  13.732  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 490.8 on 9965 degrees of freedom
Multiple R-squared:  0.6377,    Adjusted R-squared:  0.6363 
F-statistic: 449.8 on 39 and 9965 DF,  p-value: < 2.2e-16

Wielomiany


Call:
lm(formula = cena ~ poly(wielkosc, 6), data = dane)

Residuals:
     Min       1Q   Median       3Q      Max 
-2218.47  -390.43   -52.45   351.51  2332.68 

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)         2843.019      5.905 481.430  < 2e-16 ***
poly(wielkosc, 6)1 55517.286    590.684  93.988  < 2e-16 ***
poly(wielkosc, 6)2 -4634.669    590.684  -7.846 4.72e-15 ***
poly(wielkosc, 6)3 -3666.422    590.684  -6.207 5.61e-10 ***
poly(wielkosc, 6)4 -4240.237    590.684  -7.179 7.55e-13 ***
poly(wielkosc, 6)5 -1119.607    590.684  -1.895   0.0581 .  
poly(wielkosc, 6)6   703.338    590.684   1.191   0.2338    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 590.7 on 9998 degrees of freedom
Multiple R-squared:  0.4735,    Adjusted R-squared:  0.4732 
F-statistic:  1498 on 6 and 9998 DF,  p-value: < 2.2e-16

Wielomiany

LOOCV - wyznaczanie błędu

  • Biblioteka boot
  • LOOCV czyli Leave One Out Cross Validation
  • Tyle modeli ile obserwacji (pomija jedeną)
  • Błąd na podstawie różnic między pominiętymi obserwacjami a ich przewidzeniem
  • Delta (cały zbiór; poprawka o pominięcie)
  • Efekt bardziej widoczny dla K krotnej kroswalidacji.

LOOCV - wyznaczanie błędu

  • Powolna metoda cv.glm
  • Formuła uwzględniająca wpływ i-tej obserwacji na dopasowanie do niej krzywej
  • Kilka minut vs kilka sekund
  • Nie funkcjonuje ona w wypadku regresji logistycznej

K-fold - wyznaczanie błędu

  • K modeli (najpopularniejsze 5 i 10)
  • Znacznie mniej obliczeń - szybsze działanie
  • Różnica niewielka - bardziej stablina, miarodajna metoda

Kolejne stopnie wielomianów

Dobór modelu z wieloma predyktorami

Wcześniej - jaki stopień wielomianu jednego predyktora? Teraz - odpowiedni model z wieloma predyktorami

Best Subset Regression

  • Biblioteka leaps
  • Porównuje wszytkie możliwe modele regresji o wszystkich możliwych rozmiarach
  • Brak zagnieżdzania podgrup predyktorów
  • Wykonuje \({2^p}\) modeli, gdzie p to liczba predyktorów
  • Nasz przypadek - \(2^{11}\) czyli 2048

Best Subset Regression

Subset selection object
Call: regsubsets.formula(cena ~ ., dane, nvmax = 11)
39 Variables  (and intercept)
                                     Forced in Forced out
lokalizacjaBiałołęka                     FALSE      FALSE
lokalizacjaBielany                       FALSE      FALSE
lokalizacjaMokotów                       FALSE      FALSE
lokalizacjaOchota                        FALSE      FALSE
lokalizacjaPraga Północ                  FALSE      FALSE
lokalizacjaPraga Południe                FALSE      FALSE
lokalizacjaRembertów                     FALSE      FALSE
lokalizacjaŚródmieście                   FALSE      FALSE
lokalizacjaTargówek                      FALSE      FALSE
lokalizacjaUrsus                         FALSE      FALSE
lokalizacjaUrsynów                       FALSE      FALSE
lokalizacjaWawer                         FALSE      FALSE
lokalizacjaWesoła                        FALSE      FALSE
lokalizacjaWilanów                       FALSE      FALSE
lokalizacjaWłochy                        FALSE      FALSE
lokalizacjaWola                          FALSE      FALSE
lokalizacjaŻoliborz                      FALSE      FALSE
do_wynajecia_przezNie podano             FALSE      FALSE
do_wynajecia_przezWłaściciel             FALSE      FALSE
liczba_pokoi3 pokoje                     FALSE      FALSE
liczba_pokoi4 pokoje                     FALSE      FALSE
liczba_pokoi5 pokoi                      FALSE      FALSE
liczba_pokoi6 lub więcej pokoi           FALSE      FALSE
liczba_pokoiKawalerka lub garsoniera     FALSE      FALSE
liczba_pokoiNie podano                   FALSE      FALSE
rodzaj_nieruchomosciInne                 FALSE      FALSE
rodzaj_nieruchomosciMieszkanie           FALSE      FALSE
wielkosc                                 FALSE      FALSE
parkingGaraż                             FALSE      FALSE
parkingKryty                             FALSE      FALSE
parkingNie podano                        FALSE      FALSE
parkingUlica                             FALSE      FALSE
liczba_lazienek2 łazienki                FALSE      FALSE
liczba_lazienek3 łazienki                FALSE      FALSE
liczba_lazienek4 lub więcej łazienek     FALSE      FALSE
liczba_lazienekNie podano                FALSE      FALSE
palacyTak                                FALSE      FALSE
przyjazne_zwierzakomTak                  FALSE      FALSE
liczba_wyrazow                           FALSE      FALSE
1 subsets of each size up to 11
Selection Algorithm: exhaustive
          lokalizacjaBiałołęka lokalizacjaBielany lokalizacjaMokotów lokalizacjaOchota lokalizacjaPraga Północ lokalizacjaPraga Południe
1  ( 1 )  " "                  " "                " "                " "               " "                     " "                      
2  ( 1 )  " "                  " "                " "                " "               " "                     " "                      
3  ( 1 )  " "                  " "                " "                " "               " "                     " "                      
4  ( 1 )  " "                  " "                "*"                " "               " "                     " "                      
5  ( 1 )  " "                  " "                "*"                " "               " "                     " "                      
6  ( 1 )  " "                  " "                "*"                " "               " "                     " "                      
7  ( 1 )  " "                  " "                "*"                " "               " "                     " "                      
8  ( 1 )  " "                  " "                "*"                " "               " "                     " "                      
9  ( 1 )  " "                  " "                "*"                "*"               " "                     " "                      
10  ( 1 ) " "                  " "                "*"                "*"               " "                     " "                      
11  ( 1 ) " "                  " "                "*"                "*"               " "                     " "                      
          lokalizacjaRembertów lokalizacjaŚródmieście lokalizacjaTargówek lokalizacjaUrsus lokalizacjaUrsynów lokalizacjaWawer lokalizacjaWesoła
1  ( 1 )  " "                  " "                    " "                 " "              " "                " "              " "              
2  ( 1 )  " "                  " "                    " "                 " "              " "                " "              " "              
3  ( 1 )  " "                  "*"                    " "                 " "              " "                " "              " "              
4  ( 1 )  " "                  "*"                    " "                 " "              " "                " "              " "              
5  ( 1 )  " "                  "*"                    " "                 " "              " "                " "              " "              
6  ( 1 )  " "                  "*"                    " "                 " "              " "                " "              " "              
7  ( 1 )  " "                  "*"                    " "                 " "              " "                " "              " "              
8  ( 1 )  " "                  "*"                    " "                 " "              " "                " "              " "              
9  ( 1 )  " "                  "*"                    " "                 " "              " "                " "              " "              
10  ( 1 ) " "                  "*"                    " "                 " "              " "                " "              " "              
11  ( 1 ) " "                  "*"                    " "                 " "              " "                " "              " "              
          lokalizacjaWilanów lokalizacjaWłochy lokalizacjaWola lokalizacjaŻoliborz do_wynajecia_przezNie podano do_wynajecia_przezWłaściciel
1  ( 1 )  " "                " "               " "             " "                 " "                          " "                         
2  ( 1 )  " "                " "               " "             " "                 " "                          "*"                         
3  ( 1 )  " "                " "               " "             " "                 " "                          "*"                         
4  ( 1 )  " "                " "               " "             " "                 " "                          "*"                         
5  ( 1 )  " "                " "               "*"             " "                 " "                          "*"                         
6  ( 1 )  " "                " "               "*"             " "                 " "                          "*"                         
7  ( 1 )  " "                " "               "*"             " "                 " "                          "*"                         
8  ( 1 )  " "                " "               "*"             " "                 " "                          "*"                         
9  ( 1 )  " "                " "               "*"             " "                 " "                          "*"                         
10  ( 1 ) " "                " "               "*"             "*"                 " "                          "*"                         
11  ( 1 ) "*"                " "               "*"             "*"                 " "                          "*"                         
          liczba_pokoi3 pokoje liczba_pokoi4 pokoje liczba_pokoi5 pokoi liczba_pokoi6 lub więcej pokoi liczba_pokoiKawalerka lub garsoniera
1  ( 1 )  " "                  " "                  " "                 " "                            " "                                 
2  ( 1 )  " "                  " "                  " "                 " "                            " "                                 
3  ( 1 )  " "                  " "                  " "                 " "                            " "                                 
4  ( 1 )  " "                  " "                  " "                 " "                            " "                                 
5  ( 1 )  " "                  " "                  " "                 " "                            " "                                 
6  ( 1 )  " "                  " "                  " "                 " "                            " "                                 
7  ( 1 )  " "                  " "                  " "                 " "                            " "                                 
8  ( 1 )  " "                  " "                  " "                 " "                            " "                                 
9  ( 1 )  " "                  " "                  " "                 " "                            " "                                 
10  ( 1 ) " "                  " "                  " "                 " "                            " "                                 
11  ( 1 ) " "                  " "                  " "                 " "                            " "                                 
          liczba_pokoiNie podano rodzaj_nieruchomosciInne rodzaj_nieruchomosciMieszkanie wielkosc parkingGaraż parkingKryty parkingNie podano
1  ( 1 )  " "                    " "                      " "                            "*"      " "          " "          " "              
2  ( 1 )  " "                    " "                      " "                            "*"      " "          " "          " "              
3  ( 1 )  " "                    " "                      " "                            "*"      " "          " "          " "              
4  ( 1 )  " "                    " "                      " "                            "*"      " "          " "          " "              
5  ( 1 )  " "                    " "                      " "                            "*"      " "          " "          " "              
6  ( 1 )  " "                    " "                      " "                            "*"      "*"          " "          " "              
7  ( 1 )  " "                    " "                      " "                            "*"      "*"          " "          " "              
8  ( 1 )  " "                    " "                      " "                            "*"      "*"          " "          " "              
9  ( 1 )  " "                    " "                      " "                            "*"      "*"          " "          " "              
10  ( 1 ) " "                    " "                      " "                            "*"      "*"          " "          " "              
11  ( 1 ) " "                    " "                      " "                            "*"      "*"          " "          " "              
          parkingUlica liczba_lazienek2 łazienki liczba_lazienek3 łazienki liczba_lazienek4 lub więcej łazienek liczba_lazienekNie podano palacyTak
1  ( 1 )  " "          " "                       " "                       " "                                  " "                       " "      
2  ( 1 )  " "          " "                       " "                       " "                                  " "                       " "      
3  ( 1 )  " "          " "                       " "                       " "                                  " "                       " "      
4  ( 1 )  " "          " "                       " "                       " "                                  " "                       " "      
5  ( 1 )  " "          " "                       " "                       " "                                  " "                       " "      
6  ( 1 )  " "          " "                       " "                       " "                                  " "                       " "      
7  ( 1 )  " "          " "                       " "                       " "                                  "*"                       " "      
8  ( 1 )  " "          " "                       " "                       " "                                  "*"                       " "      
9  ( 1 )  " "          " "                       " "                       " "                                  "*"                       " "      
10  ( 1 ) " "          " "                       " "                       " "                                  "*"                       " "      
11  ( 1 ) " "          " "                       " "                       " "                                  "*"                       " "      
          przyjazne_zwierzakomTak liczba_wyrazow
1  ( 1 )  " "                     " "           
2  ( 1 )  " "                     " "           
3  ( 1 )  " "                     " "           
4  ( 1 )  " "                     " "           
5  ( 1 )  " "                     " "           
6  ( 1 )  " "                     " "           
7  ( 1 )  " "                     " "           
8  ( 1 )  " "                     "*"           
9  ( 1 )  " "                     "*"           
10  ( 1 ) " "                     "*"           
11  ( 1 ) " "                     "*"           

Best Subset Regression

                 (Intercept)           lokalizacjaMokotów            lokalizacjaOchota       lokalizacjaŚródmieście           lokalizacjaWilanów 
                  450.545913                   476.235032                   349.124397                   649.739130                   310.623299 
             lokalizacjaWola          lokalizacjaŻoliborz do_wynajecia_przezWłaściciel                     wielkosc                 parkingGaraż 
                  423.324692                   394.000726                  -222.266641                    32.679045                   271.762260 
   liczba_lazienekNie podano               liczba_wyrazow 
                  209.638385                     1.130164 

Best Subset Regression

Best Subset Regression

Best Subset Regression

  • W tym wypadku nie widać niezagnieżdzania
  • Najmniejszy błąd dla największej liczby predyktorów
  • Nie musiało tak być

Forward Stepwise Selection

  • “Chciwa” metoda - zagnieżdzanie podzbiorów predyktorów
  • Raz dobrany czynnik wykorzystywany w następnym modelu
  • Wykonuje około \(\frac{p^2}{2}\) modeli
  • Nasz przypadek to około 60 - tylko 3% poprzednich

Backward Stepwise Selection

  • Start ze wszystkimi predyktorami w modelu
  • Odejmowanie najmniej wpływowego czynnika
  • Nie można użyć na danych, gdzie m<p

Walidacja - pojedyncza i K-krotna

  • Dzielenie obserwacji na zestawy - treningowy i walidacyjny
Reordering variables and trying again:
Reordering variables and trying again:
Reordering variables and trying again:
Reordering variables and trying again:

Walidacja - pojedyncza i K-krotna

Ridge Regression (Regularyzacja Tichonowa)

  • Biblioteka glmnet (dzielenie danych na predyktory i odpowiedzi)
  • Człon regularyzacji w równaniu (\(\lambda\) i \(\mathcal{B}^2\))
  • Duża \(\lambda\) - małe \(\mathcal{B}\)
  • Wszystkie predyktory
  • Minimalizacja współczynników \(\mathcal{B}\)
  • Normalizacja danych

Ridge Regression (Regularyzacja Tichonowa)

Ridge Regression (Regularyzacja Tichonowa)

Ridge Regression (Regularyzacja Tichonowa)

Ridge Regression (Regularyzacja Tichonowa)

Ridge Regression (Regularyzacja Tichonowa)

Ridge Regression (Regularyzacja Tichonowa)

Lasso

  • Least Absolute Shrinkage and Selection Operator
  • Element regulujący \(|\mathcal{B}|\)
  • Współczynniki \(\mathcal{B}\) sprowadzone do zera
  • Część predyktorów nie bierze udziału

Lasso

Lasso

Lasso

Lasso

Lasso

Lasso

Lasso

[1] 26

Walidacja - dobranie parametru \(\lambda\)


Call:  glmnet(x = x[trening44, ], y = y[trening44]) 

      Df    %Dev   Lambda
 [1,]  0 0.00000 547.8000
 [2,]  1 0.07787 499.1000
 [3,]  1 0.14250 454.8000
 [4,]  1 0.19620 414.4000
 [5,]  1 0.24080 377.6000
 [6,]  1 0.27780 344.0000
 [7,]  1 0.30850 313.5000
 [8,]  1 0.33400 285.6000
 [9,]  1 0.35510 260.2000
[10,]  1 0.37270 237.1000
[11,]  1 0.38730 216.1000
[12,]  1 0.39940 196.9000
[13,]  2 0.41040 179.4000
[14,]  2 0.42390 163.4000
[15,]  2 0.43500 148.9000
[16,]  3 0.44490 135.7000
[17,]  3 0.45790 123.6000
[18,]  3 0.46860 112.7000
[19,]  3 0.47760 102.6000
[20,]  6 0.48940  93.5300
[21,]  8 0.50410  85.2200
[22,] 10 0.52010  77.6500
[23,] 11 0.53390  70.7500
[24,] 11 0.54600  64.4600
[25,] 14 0.55700  58.7400
[26,] 14 0.56680  53.5200
[27,] 16 0.57560  48.7600
[28,] 17 0.58400  44.4300
[29,] 18 0.59120  40.4900
[30,] 18 0.59740  36.8900
[31,] 20 0.60260  33.6100
[32,] 20 0.60730  30.6300
[33,] 20 0.61120  27.9000
[34,] 21 0.61450  25.4300
[35,] 22 0.61730  23.1700
[36,] 22 0.62000  21.1100
[37,] 24 0.62220  19.2300
[38,] 24 0.62420  17.5300
[39,] 25 0.62590  15.9700
[40,] 25 0.62730  14.5500
[41,] 27 0.62850  13.2600
[42,] 27 0.62950  12.0800
[43,] 27 0.63030  11.0100
[44,] 27 0.63100  10.0300
[45,] 29 0.63170   9.1380
[46,] 30 0.63220   8.3260
[47,] 31 0.63270   7.5860
[48,] 31 0.63310   6.9120
[49,] 32 0.63340   6.2980
[50,] 32 0.63370   5.7390
[51,] 32 0.63390   5.2290
[52,] 33 0.63410   4.7640
[53,] 33 0.63430   4.3410
[54,] 34 0.63440   3.9550
[55,] 34 0.63460   3.6040
[56,] 34 0.63470   3.2840
[57,] 34 0.63470   2.9920
[58,] 34 0.63480   2.7260
[59,] 34 0.63490   2.4840
[60,] 34 0.63490   2.2630
[61,] 34 0.63500   2.0620
[62,] 35 0.63500   1.8790
[63,] 35 0.63500   1.7120
[64,] 35 0.63510   1.5600
[65,] 35 0.63510   1.4220
[66,] 35 0.63510   1.2950
[67,] 35 0.63510   1.1800
[68,] 35 0.63510   1.0750
[69,] 35 0.63520   0.9798
[70,] 35 0.63520   0.8927
[71,] 35 0.63520   0.8134
[72,] 35 0.63520   0.7412
[73,] 36 0.63520   0.6753

Walidacja - dobranie parametru \(\lambda\)

Walidacja - dobranie parametru \(\lambda\)

  • Wcześniej \(log(\lambda_{min}) < 0\) oraz \(log(\lambda_{1st}) \simeq 2.7\)

  • Teraz

[1] 4.764327
[1] 1.561156

Walidacja - dobranie parametru \(\lambda\)

41 x 1 sparse Matrix of class "dgCMatrix"
                                                 1
(Intercept)                           1050.1065628
lokalizacjaBemowo                     -436.2768682
lokalizacjaBiałołęka                  -666.7034787
lokalizacjaBielany                    -253.9326917
lokalizacjaMokotów                     147.2142431
lokalizacjaOchota                       19.1241968
lokalizacjaPraga Północ                -43.9518359
lokalizacjaPraga Południe             -212.7163070
lokalizacjaRembertów                  -392.1580289
lokalizacjaŚródmieście                 325.6986109
lokalizacjaTargówek                   -518.4849000
lokalizacjaUrsus                      -519.0250234
lokalizacjaUrsynów                    -238.6313869
lokalizacjaWawer                      -693.1287036
lokalizacjaWesoła                    -1095.6705374
lokalizacjaWilanów                       .        
lokalizacjaWłochy                     -214.3443473
lokalizacjaWola                         79.1850594
lokalizacjaŻoliborz                     40.5228167
do_wynajecia_przezNie podano            -2.9852110
do_wynajecia_przezWłaściciel          -196.7439068
liczba_pokoi3 pokoje                   185.2279425
liczba_pokoi4 pokoje                   209.4840714
liczba_pokoi5 pokoi                    191.3150951
liczba_pokoi6 lub więcej pokoi           .        
liczba_pokoiKawalerka lub garsoniera  -169.3703593
liczba_pokoiNie podano                   .        
rodzaj_nieruchomosciInne              -156.4845950
rodzaj_nieruchomosciMieszkanie           .        
wielkosc                                27.3535489
parkingGaraż                           260.0328987
parkingKryty                            61.0748403
parkingNie podano                        .        
parkingUlica                           -36.8208370
liczba_lazienek2 łazienki               26.3565201
liczba_lazienek3 łazienki                .        
liczba_lazienek4 lub więcej łazienek  -167.5560629
liczba_lazienekNie podano              194.5708189
palacyTak                                9.9588596
przyjazne_zwierzakomTak                  .        
liczba_wyrazow                           0.9526509

Aplikacja

Niestety, ten format prezentacji nie obsługuje uruchamiania aplikacji Shiny.

Kod i inne projekty

  • Kod napisany na potrzeby tego projektu na github
  • Raport z innego projektu w którym brałem udział

Dziękuję za uwagę